home *** CD-ROM | disk | FTP | other *** search
- ******************************
- MIDISTAT v1.0
-
- statistics of midi binaries
- by Guenter Nagler
- 1996
- (gnagler@ihm.tu-graz.ac.at)
- ******************************
-
- [0] FEATURES
- + reads a binary midi file
- + writes statistic text to standard output
- + number of tracks
- + used channels per tracks
- + used programs per track (except gm drum channel 10, gm program names)
- + used notes per track (note names)
- + used velocities per track (note on)
- + used volume values per track
-
- [1] BACKGROUND
- When I wrote the utility MIDIDRUM that splits tracks by instruments
- I needed the proof that each track really contains only one instrument (program)
- or drum instrument (note).
- This can hardly be done with manual checking of midi files, so I wrote
- this simply program that gives me the statistics per track.
-
- Sometimes I use this utility when I want to change volume or velocity of
- a midi track. The utility MIDIFADE needs percentage values of original
- velocities and so I check first which original volume or velocity values
- were used and decide percentage value according to minimum or maximum value,
- so that the changed values will not exceed the limits.
-
- [2] FILES DESCRIPTION
-
- MIDISTAT.EXE.........converter program
- MIDISTAT.DOC.........this file, showing usage of MIDISTAT.EXE
- MIDIIO.HPP..........header file for a c++ midi parser
- MIDIIO.CPP..........source code for a c++ midi parser
- MIDISTAT.CPP.........c++ source code for modifying midi files
- MIDISTAT.MAK.........make file for project
- MIDISTAT.CFG.........compiler options for make
- MIDISTAT.PRJ.........compiler project for Borland (tm) c++ compilers
- only MIDISTAT.EXE is required to run program
-
- [3] COPYRIGHT
-
- MIDISTAT (c) 1996 was created by Guenter Nagler.
-
- MIDISTAT is free and may be used as you wish with this one exception:
-
- You may NOT charge any fee or derive any profit for distribution
- of MIDISTAT. Thus, you may NOT sell or bundle MIDISTAT with any
- product in a retail environment (shareware disk distribution, CD-ROM,
- etc.) without permission of the author.
-
- You may give MIDISTAT to your friends, upload it to a BBS, or ftp it to
- another internet site, as long as you don't charge anything for it.
-
- [4] DISCLAIMER
-
- MIDISTAT was designed to handle 100% compatible general midi files.
- The parser was tested with 2000 different midi files but I can not say if
- each 100% midi compatible midi file can be correctly converted.
- So I give no guarantees of the results, especially with non 100%
- compatible midi files.
- If you find a midi file that you think to be 100% compatible midi
- that is not correctly converted, please send a sample file to
- gnagler@ihm.tu-graz.ac.at .
-
- Use MIDISTAT at your own risk. Anything you do with MIDISTAT is your
- responsibility, and not the author's. Any damage caused to any person,
- computer, software, hardware, company, or business by running MIDISTAT
- is your responsibility, and the author will not be liable.
-
- If you don't understand these terms, or are not sure of something, or
- are afraid something bad might come of using MIDISTAT, don't use it!
- You are here forewarned.
-
- [5] INSTALLATION
-
- [MSDOS]
- Simply copy MIDISTAT.EXE in a directory that is in your path.
- When you start the program without arguments
-
- [UNIX]
- compile sources with your C++ compiler (e.g. GNU Compiler g++):
-
- g++ -o midistat midistat.cpp midiio.cpp
-
- and run program
-
- $ midistat
-
- C:\> midistat
-
- you should get the usage text (see next section)
-
- [6] USAGE
-
- usage: midistat filename.mid [ > output]
-
- The parts in brackets [...] are optional.
-
- "> output" means that you can redirect the output of midistat to
- a file or printer. By default the output is written on your terminal.
-
- The program MIDISTAT has following hidden option:
- -version get program version
-
- [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
-
- WWW: http://hgiicm.tu-graz.ac.at/Cpub
- contains all my dos/unix midi programs
- EMAIL: gnagler@ihm.tu-graz.ac.at
-
- [9] EXAMPLE
- example: statistics of a midi file format 0 file
- command>midistat format0.mid
-
- format0.mid: 1 Track
- Track 1:
- Channels: 1-5 9 10 12-16
- Notes: c1 f1 g1-a1 c2 d2 e2-a#2 c3-d3 e3-g3 a3 h3 c4 d4 e4 f4 g4 a4-c5 d5-f5 g5-d6
- Programs: CleanGtr FretLess SlowString Choir Trumpet FrenchHorn Clarinet PanFlute Shakuhachi SynCalinope Fantasia
- Velocity: 26 36 37 39-49 51-53 55-58 60 62-64 66-69 72 73 76-78 81-83 85 86 88 89 92 94 96 98 103 109 111-113 115 123
- Volume: 0 127
-
- Channels 1-5 means that all channels within range 1 and 5 are used (1,2,3,4,5)
-
- example: statistics of a midi file format 1 file
- command>midistat format1.mid
-
- format1.mid: 13 Tracks
- Track 1:
- Track 2:
- Channels: 1
- Programs: PanFlute
- Volume: 127
- Track 3:
- Channels: 2
- Notes: c1 f1 g1-a1 c2 d2 e2 g2 a2
- Programs: FretLess
- Velocity: 96
- Volume: 127
- Track 4:
- Channels: 3
- Notes: d3 e3 f3 g3 a3 c4 d4 e4 g4
- Programs: CleanGtr
- Velocity: 53 63
- Volume: 0 127
- Track 5:
- Channels: 4
- Programs: Trumpet
- Volume: 127
- Track 6:
- Channels: 5
- Notes: d4 e4 a4 h4 c5
- Programs: Shakuhachi
- Velocity: 66 78 113
- Volume: 0 127
- Track 7:
- Channels: 9
- Notes: e4 f4 g4 a4 h4 c5 d5 e5 f5 g5 a5 h5 c6 d6
- Programs: SynCalinope
- Velocity: 67 77
- Volume: 127
- Track 8:
- Channels: 10
- Notes: c2 d2 f2-a#2 c#3 f#3 a3 h3 a4 a#4 d#5 g#5-a#5 c#6
- Velocity: 26 36 37 39-49 51-53 55 56 58 60 64 66 68 69 72 76 81 85 86 89 94 96 98 103 109 111 115 123
- Volume: 127
- Track 9:
- Channels: 12
- Notes: c3 h3 c4 d4 e4 f4 g4 a4 c5 d5 e5 f5 g5
- Programs: SlowString
- Velocity: 52 62 72 82 85 92
- Volume: 127
- Track 10:
- Channels: 13
- Notes: h4 c5 d5-e5 g5 c6
- Programs: Fantasia
- Velocity: 58 63 68 73
- Volume: 127
- Track 11:
- Channels: 14
- Notes: d3 e3 g3 a3 h3 c4 d4 e4
- Programs: FrenchHorn
- Velocity: 73 83 88
- Volume: 127
- Track 12:
- Channels: 15
- Notes: c4 d4 e4 f4 g4 a4 h4 c5 d5 e5
- Programs: Choir
- Velocity: 57 77
- Volume: 127
- Track 13:
- Channels: 16
- Notes: e4 g4 a4 h4 c5 d5 e5 f5 g5
- Programs: Clarinet
- Velocity: 63
- Volume: 127
-